정규화(Normalization)2 - 제 1 정규형 :: DB에 대한 글들을 모았습니다.[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

DB에 대한 글들을 모았습니다.
[1]
등록일:2009-04-18 22:43:25 (0%)
작성자:
제목:정규화(Normalization)2 - 제 1 정규형

1. 정규화 순서도

 

 

 * 4, 5 정규형은 생략

 

 

2. 제 1 정규형(First Normal Form)

 

 

반복그룹(repeating group)이란?

    

     - 복합 애트리뷰트(composite attribute)

     - 다치 애트리뷰트(multivalue attribute)

     - 중첩 릴레이션(nested relation)

 

 

 

Example 분석

 

 

 

 

<고객테이블 - 2>에 대한 갱신이상 분석

 

◑ 수정이상(Modification Anomaly)

   - 고객명이 취미의 수만큼 중복되어 저장 -> 취미의 수가 많을 경우 수정이상이 발생할

     가능성 높다

◑ 삭제이상(Deletion Anomaly)

   - 등산을 취미로 갖는 고객이 홍길동 1명인 경우, 홍길동 고객정보를 삭제하면 등산의

     취미정보도 삭제되고, 등산정보를 삭제하는 경우 홍길동 고객정보도 같이 삭제된다.

◑ 삽입이상(Insertion Anomaly)

   - 고객번호가 주키이므로 테니스라는 취미정보를 추가하는 경우, 테니스를 취미로 갖는

     고객이 아직 없으므로 삽입이 불가능하다(주키는 null값을 못가지므로).

 

 

 

<고객테이블 - 2>에 대한 갱신이상 발생 원인

 

고객번호와 고객명은 (고객번호) -> (고객명) 으로 함수적 종속관계를 갖으나

고객번호와 취미는 함수적 종속관계가 아니다.

 

 
 
 
<고객테이블 - 2>에 대한 갱신이상 해결책
 
갱신이상은 <고객테이블 - 2>에서 취미 애트리뷰트가 반복그룹이어서 발생
-> 취미애트리뷰트를 새로운 테이블로 분리
-> 관계설정을 위하여 <고객테이블 - 1>의 주키인 (고객번호)를 새로운 테이블의 애트리뷰
   트로 추가
 
따라서, 다음과 같이 <고객테이블 - 2>을 분리한다
 
 
 
 
 
 
제 1 정규형(First Normal Form)에 대한 결론
 
- 반복그룹을 갖는 릴레이션은 반복그룹의 애트리뷰트를 새로운 릴레이션으로 분리
- 관계 유지를 위하여 원 릴레이션의 주키를 새로운 릴레이션의 애트리뷰트로 추가
 

 

 

★ 보충 - L자형 테이블 ★

 

테이블의 데이터를 null값을 가지고 있는 데이터를 위쪽으로 정리했을 때 위쪽의 컬럼들이 null값을 가지는 관계로 빈 공간이 되어 전체적 모양이 L자 형태로 나타나는 테이블

 

 

 

위에서 보는 바와 같이, 반복그룹을 column을 추가하여 제거하는 <고객테이블 - B>경우, L자형 테이블이 나타난다. <고객테이블 - A>의 경우는 앞서 설명한 바와 같이 불필요한 데이터의 중복이 나타나고 있다.

 

L자형 테이블은 일반적으로 가장 많이 나타나는 테이블구조로서, 모든 정보를 한꺼번에 한 테이블에 넣도록 설계하는 경우에 자주 나타난다. 규모가 작은 웹사이트에서 회원정보를 적절히 분리하지 않고 한 테이블에 모조리 다 넣는 경우가 그 대표적 예이다.

 

A, B 두 테이블 모두 비효율적인 테이블구조이며 앞서 본 바와 같이 두 개의 테이블로 분해하는 것이 바람직하다.

[본문링크] 정규화(Normalization)2 - 제 1 정규형
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=31471
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.